A serial bus interface such as an IEEE 1394 can connect a plurality of devices such as a digital video camera (DV), digital still camera (DC), host computer, scanner, printer, and digital video tape recorder all together, unlike an interface such as a centronics which connects a host and device in a one-to-one correspondence. Hence, a serial bus interface may be applied to a data communication network system in which a plurality of devices are connected.
Various kinds of devices are connected to such a network. Many unspecified devices available from different manufacturers may be connected to a network.
For a serial bus interface compatible to or complying with the IEEE 1394 (to be simply referred to as a “1394 interface” hereinafter), the IEEE 1212 and IEEE 1394 standards define that each device should have a configuration ROM in a predetermined address space as a means for identifying the device on a network and obtaining information related to the device.
The configuration ROM stores a node unique ID as an ID unique to each device. A node unique ID is formed from 64 bits. The upper 24 bits form a device manufacturer ID assigned by the IEEE (The Institute of Electrical and Electronics Engineers, Inc.) and the lower 48 bits can be freely defined by each manufacturer. A specific node unique ID is set for one device independently of the manufacturer and model of the device.
A bus info block representing the function and performance supported by the device on the 1394 interface, a vendor directory representing information related to the manufacturer, an instance directory representing information related to the function of the device itself, such as a printer or scanner, and a unit directory representing protocol software information supported to control each function on the 1394 interface are also recorded in the configuration ROM in accordance with a predetermined format and standard.
By reading out and analyzing pieces of information stored in the configuration ROM of a device connected to an IEEE 1394 serial bus (to be simply referred to as a “1394 serial bus” hereinafter), a partner device with which a certain device wants to communicate can be specified on a network (to be referred to as a “1394 network” hereinafter) in which a plurality of devices are connected through the 1394 serial bus. Also in specifying a device again after bus reset, a desired device can be specified by reading out information from the configuration ROM of each device connected to the 1394 network.
As described above, in data communication between devices connected to a 1394 network, a read of information from the configuration ROM is generally and frequently done.
For some devices, it is difficult to efficiently read out information from the configuration ROM. More specifically, some devices are not compatible with a block read, i.e., batch read operation in the IEEE 1394 for a 1-kbyte configuration ROM area defined by the IEEE 1212. To read out information from the configuration ROM of such a device, a quadlet read as a minimum unit of read operation in the IEEE 1394 must be repeated.
As a device becomes complex with multiple functions, the number of pieces of information described in the configuration ROM and their amounts increase and therefore the number of pieces of information to be read out also tends to increase. If a block read cannot be used to read out pieces of information from the configuration ROM, the number of times of issue of a quadlet read request increases. This degrades the processing efficiently of the device that issues such request. In addition, the bus occupation ratio of the 1394 serial bus by the request becomes high, and the speed of processing through the 1394 serial bus decreases.
Furthermore, a configuration ROM with a minimal format defined by the IEEE 1212 cannot provide sufficient information to another device.